Chapter 9. Conclusion

We hope you enjoyed working through the tutorial and now are equipped at least with a basic understanding of the Jadex BDI reasoning engine. Nevertheless, this tutorial does not cover all important aspects about agent programming in Jadex. Most importantly the following topics have not been discussed:

Ontologies

Ontologies can be used for describing message contents. In more complex applications you usually want to transfer objects instead of simple strings. In Jadex for this purpose you could use arbitrary Java beans in connection with the SFipa.JADEX_XML language. If this language is specified for a message event the an xml encoder/decoder (from the Jadex XML framework) will be used to encode/decode the message content. We prefer writing those Java beans by hand but there also exist tools, which can be used to generate Java beans from ontology formats. A well-known ontology tool is Protégé

Protocol Capabilities

The protocol capabilities, which belongs to the Jadex planlib provide ready-to-use implementations of some common interaction protocols. In Exercise F4 you could already see how to use the initiator side of the FIPA request protocol. For more details on the protocol capabilities, please have a look at the BDI User Guide. Conceptual details about goal-oriented protocols can be found in [Braubach et al. 2007].

Goal Deliberation

This tutorial only mentions the different goal types available in Jadex (perform, achieve, query and maintain). It does not cover aspects of goal deliberation, i.e. how a conflict free pursuit of goals can be ensured. Jadex offers the built-in Easy Deliberation strategy for this purpose. The strategy allows to constrain the cardinality of active goals. Additionally, it is possible to define inhibition links between goals that allow to establish an ordering of goals. Inhibited goals are suspended and can be reactivated when the reason for their inhibition has vanished, e.g. another goal has finished processing. Please refer also to the BDI User Guide for an extended explanation. Background information is available in the paper [Pokahr et al. 2005a]. 

Plan Deliberation

If more than one plan is applicable for a given goal or event the Jadex interpreter has to decide which plan actually will be given a chance to handle the goal resp. event. This decision process called plan deliberation can be customized with meta-level reasoning. This means that a custom defined meta-level goal is automatically raised by the system in case a plan decision has to be made. This meta goal can be handled by a corresponding meta-level plan which has the task to select among the candidate plans. Further details about meta-level reasoning can be found in the BDI User Guide and by looking into the source code of the "puzzle" agent included in the Jadex release. 

Jadex BDI Architecture

During some of the exercises you may have used the Jadex debugger for executing Jadex agents step-by-step. But what makes-up one such step in the debugger? All steps represent BDI rules meaning that they are not at the application-level but on the architecture level. Examples for such BDI rules are "selecting plans for a given event", "executing a plan step", "creating a new goal" and many more. Basically, the Jadex interpreter selects one BDI rule after another and executes them when they are applicable in the current situation. This new architecture makes the Jadex framework efficient and also extensible as new rules can be added to the system easily. Details about the architecture are described in the BDI User Guide and the papers [Pokahr et al. 2005b], [Pokahr et al. 2009].